Implementation Considerations for Higher-order Features in Logic Programming Implementation Considerations for Higher-order Features in Logic Programming Running Title: Higher-order Features in Logic Programming

نویسندگان

  • Gopalan Nadathur
  • Bharat Jayaraman
  • Debra Sue Wilson
چکیده

This paper examines implementation problems that arise from providing for aspects of higher-order programming within and enhancing the metalanguage abilities of logic programming. One issue of concern is a representation for the simply-typed lambda terms that replace the usual rst-order terms as data structures; this representation must support an eecient realization of-conversion operations on these terms. Another issue is the handling of higher-order uniication that becomes an integral part of the computational model. An implementation must cater to the branching nature of this operation and also provide a means for temporarily suspending the solution of a uniication problem. A nal issue concerns the treatment of goals whose structure is not statically apparent. These problems are discussed in detail and solutions to them are described. A representation for lambda terms is presented that uses the de Bruijn \nameless" notation and also permits reduction substitutions to be performed lazily. This notation obviates-conversion and also supports an eecient implementation of-reduction. Branching in uniication is implemented by using a depth-rst search strategy with backtracking. A structure that is called a branch point record and is akin to the choice point record of the Warren Abstract Machine (WAM) is described for remembering alternatives in uniication. An explicit representation for uniication problems is presented that permits sharing and also supports the rapid reinstatement of earlier versions of the problem. The implementation of uniication is tuned to yield an eecient solution to rst-order like problems, in fact through the use of compiled code as in the WAM. A compilation method is also discussed for goals whose structure changes during execution. The various ideas presented here form part of an ongoing implementation of a higher-order logic programming language called Prolog.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Fast and Self-Repairing Genetic Programming Designer for Logic Circuits

Usually, important parameters in the design and implementation of combinational logic circuits are the number of gates, transistors, and the levels used in the design of the circuit. In this regard, various evolutionary paradigms with different competency have recently been introduced. However, while being advantageous, evolutionary paradigms also have some limitations including: a) lack of con...

متن کامل

Checking foundational proof certificates for first-order logic

We present the design philosophy of a proof checker based on a notion of foundational proof certificates. At the heart of this design is a semantics of proof evidence that arises from recent advances in the theory of proofs for classical and intuitionistic logic. That semantics is then performed by a (higher-order) logic program: successful performance means that a formal proof of a theorem has...

متن کامل

Checking Foundational Proof Certificates for First-Order Logic (Extended Abstract)

We present the design philosophy of a proof checker based on a notion of foundational proof certificates. At the heart of this design is a semantics of proof evidence that arises from recent advances in the theory of proofs for classical and intuitionistic logic. That semantics is then performed by a (higher-order) logic program: successful performance means that a formal proof of a theorem has...

متن کامل

Abstractions in Logic Programs

ions in Logic Programs Dale Miller University of Pennsylvania Follow this and additional works at: http://repository.upenn.edu/cis_reports University of Pennsylvania Department of Computer and Information Science Technical Report No. MS-CIS-89-30. This paper is posted at ScholarlyCommons. http://repository.upenn.edu/cis_reports/702 For more information, please contact [email protected]...

متن کامل

An Overview of Λprolog

λProlog is a logic programming language that extends Prolog by incorporating notions of higher-order functions, λ-terms, higher-order unification, polymorphic types, and mechanisms for building modules and secure abstract data types. These new features are provided in a principled fashion by extending the classical first-order theory of Horn clauses to the intuitionistic higher-order theory of ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1993